package main

import (
	"fmt"
	// "time"
)

func main() {

	c := make(chan int)
	quit := make(chan int) // 创建一个结束通道

	// go线程
	go func() {
		for i := 0; i < 5; i++ {
			fmt.Println(<-c) // c可读
		}

		// close(c)

		quit <- 0 //模拟当发送消息结束以后，往quit通道发送0
	}()

	// main线程
	x := 1
	for {
		x++
		select {
		case c <- x: // 如果c可写入消息，则执行下面方法
			fmt.Println("c可写,获取的值为", x)

		case data := <-quit: // 如果quit可读，代表go线程执行完，往quit写入0
			fmt.Println(data)
			fmt.Println("go线程执行完了")
			return // 结束该循环
		}
	}
}
